Public Class SkuGenerator

    Public Shared Function NewSku() As String

        Dim key As Guid = Guid.NewGuid()

        Dim subKey As String = key.ToString.Substring(0, 6)

        If ContainsAtLeastOneLetter(subKey) Then
            Return subKey.ToUpper()
        Else
            Return NewSku()
        End If

    End Function

    Private Shared Function ContainsAtLeastOneLetter(ByVal key As String) As Boolean

        Dim subKeyChar As Char() = key.ToCharArray()

        Dim hasLetter As Boolean = False
        For i As Integer = 0 To subKeyChar.Length - 1
            hasLetter = Char.IsLetter(subKeyChar(i))

            If hasLetter Then Exit For
        Next

        Return hasLetter
    End Function
End Class
